package luzhikun.decorator;

import luzhikun.service.ISomeService;

/**
 * @Author Rookie Coder
 * @Description 装饰类
 * @Date 装饰类基类有两个要求
 * 要求1：装饰者基类不能由任何对目标对象的增强
 * 要求2：装饰者基类中要有无参构造器
 **/
public class SomeServiceDecorator implements ISomeService {

    private ISomeService iSe;

    public SomeServiceDecorator() {

    }

    // 通过带参构造器传入目标对象
    public SomeServiceDecorator(ISomeService iSe) {
        this.iSe = iSe;
    }

    // 调用目标类的目标方法，但不对其进行任何增强
    @Override
    public String doSome() {
        return iSe.doSome().toUpperCase();
    }
}
